namespace BTSPracCourse.Schemas.Sample {
    using Microsoft.XLANGs.BaseTypes;
    
    
    [SchemaType(SchemaTypeEnum.Document)]
    [Schema(@"http://www.MoustafaRefaat.com/BTSPracCourseSchemas/NewsSchema",@"NewsML")]
    [System.SerializableAttribute()]
    [SchemaRoots(new string[] {@"NewsML"})]
    public sealed class NewsML : Microsoft.XLANGs.BaseTypes.SchemaBase {
        
        [System.NonSerializedAttribute()]
        private static object _rawSchema;
        
        [System.NonSerializedAttribute()]
        private const string _strSchema = @"<?xml version=""1.0"" encoding=""utf-16""?>
<xs:schema xmlns:b=""http://schemas.microsoft.com/BizTalk/2003"" xmlns=""http://www.MoustafaRefaat.com/BTSPracCourseSchemas/NewsSchema"" elementFormDefault=""unqualified"" targetNamespace=""http://www.MoustafaRefaat.com/BTSPracCourseSchemas/NewsSchema"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">
  <xs:annotation>
    <xs:appinfo>
      <b:schemaInfo root_reference=""NewsML"" xmlns:b=""http://schemas.microsoft.com/BizTalk/2003"" />
    </xs:appinfo>
  </xs:annotation>
  <xs:complexType name=""AdministrativeMetadataType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" ref=""FileName"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""Source"" type=""SourceType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name=""SourceType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""Party"" type=""PartyType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name=""PartyType"">
    <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
    <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
  </xs:complexType>
  <xs:complexType name=""SubjectCodeType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""SubjectMatter"" type=""SubjectMatterType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name=""SubjectMatterType"">
    <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
    <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
  </xs:complexType>
  <xs:element name=""ByLine"" type=""xs:anyType"" />
  <xs:element name=""Byline"">
    <xs:complexType />
  </xs:element>
  <xs:complexType name=""ContentItemType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""MediaType"" type=""MediaTypeType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""MimeType"" type=""MimeTypeType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""Property"" type=""PropertyType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""DataContent"" type=""DataContentType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""ImageCaption"">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base=""xs:string"" />
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name=""Href"" type=""xs:string"" use=""optional"" />
    <xs:attribute name=""OriginalHref"" type=""xs:string"" use=""optional"" />
  </xs:complexType>
  <xs:element name=""CreditLine"" type=""xs:string"" />
  <xs:element name=""DateId"" type=""xs:string"" />
  <xs:element name=""DateLine"" type=""xs:string"" />
  <xs:complexType name=""DescriptiveMetadataType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""Language"" type=""LanguageType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""SubjectCode"" type=""SubjectCodeType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""OfInterestTo"" type=""OfInterestToType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name=""FileName"">
    <xs:complexType />
  </xs:element>
  <xs:element name=""HeadLine"" type=""xs:string"" />
  <xs:complexType name=""IdentificationType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsIdentifier"" type=""NewsIdentifierType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name=""OfInterestToType"">
    <xs:simpleContent>
      <xs:extension base=""xs:string"">
        <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
        <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name=""LanguageType"">
    <xs:simpleContent>
      <xs:extension base=""xs:string"">
        <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
        <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name=""MediaTypeType"">
    <xs:simpleContent>
      <xs:extension base=""xs:string"">
        <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
        <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name=""MimeTypeType"">
    <xs:simpleContent>
      <xs:extension base=""xs:string"">
        <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
        <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name=""NewsComponentType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsLines"" type=""NewsLinesType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""AdministrativeMetadata"" type=""AdministrativeMetadataType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""DescriptiveMetadata"" type=""DescriptiveMetadataType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""ContentItem"" type=""ContentItemType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name=""NewsIdentifierType"">
    <xs:all>
      <xs:element minOccurs=""0"" ref=""ProviderId"" />
      <xs:element minOccurs=""0"" ref=""DateId"" />
      <xs:element minOccurs=""0"" ref=""NewsItemId"" />
      <xs:element minOccurs=""0"" ref=""SectionName"" />
      <xs:element minOccurs=""0"" ref=""RevisionId"" />
      <xs:element minOccurs=""0"" ref=""PublicIdentifier"" />
      <xs:element minOccurs=""0"" ref=""SearchId"" />
    </xs:all>
  </xs:complexType>
  <xs:complexType name=""NewsItemType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""Identification"" type=""IdentificationType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsManagement"" type=""NewsManagementType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsComponent"" type=""NewsComponentType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name=""NewsItemId"" type=""xs:string"" />
  <xs:complexType name=""NewsItemTypeType"">
    <xs:simpleContent>
      <xs:extension base=""xs:string"">
        <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
        <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name=""NewsLineType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsLineType"" type=""NewsLineTypeType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" ref=""NewsLineText"" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name=""NewsLineText"" type=""xs:string"" />
  <xs:complexType name=""NewsLineTypeType"">
    <xs:simpleContent>
      <xs:extension base=""xs:string"">
        <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name=""NewsLinesType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" ref=""HeadLine"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" ref=""ByLine"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" ref=""Byline"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" ref=""DateLine"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""CopyrightLine"" type=""xs:anyType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""SlugLine"" type=""xs:anyType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""KeywordLine"" type=""xs:anyType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" ref=""CreditLine"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsLine"" type=""NewsLineType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name=""NewsML"">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""Catalog"" type=""CatalogType"" />
        <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsEnvelope"" type=""NewsEnvelopeType"" />
        <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsItem"" type=""NewsItemType"" />
      </xs:sequence>
      <xs:attribute name=""ProviderName"" type=""xs:string"" use=""optional"" />
      <xs:attribute name=""ProviderChannel"" type=""xs:string"" use=""optional"" />
      <xs:attribute name=""Language"" type=""xs:string"" use=""optional"" />
      <xs:attribute name=""SourceLocation"" type=""xs:string"" use=""optional"" />
    </xs:complexType>
  </xs:element>
  <xs:complexType name=""NewsManagementType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""NewsItemType"" type=""NewsItemTypeType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""FirstCreated"" type=""xs:anyType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""ThisRevisionCreated"" type=""xs:anyType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""Status"" type=""StatusType"" />
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""Urgency"" type=""UrgencyType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name=""StatusType"">
    <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
    <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
  </xs:complexType>
  <xs:complexType name=""UrgencyType"">
    <xs:attribute name=""FormalName"" type=""xs:byte"" use=""optional"" />
    <xs:attribute name=""Scheme"" type=""xs:string"" use=""optional"" />
  </xs:complexType>
  <xs:complexType name=""DataContentType"">
    <xs:sequence>
      <xs:element minOccurs=""0"" maxOccurs=""unbounded"" name=""body"" type=""xs:string"" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name=""PropertyType"">
    <xs:attribute name=""FormalName"" type=""xs:string"" use=""optional"" />
    <xs:attribute name=""value"" type=""xs:string"" use=""optional"" />
  </xs:complexType>
  <xs:element name=""ProviderId"" type=""xs:string"" />
  <xs:element name=""SearchId"" type=""xs:anyType"" />
  <xs:element name=""SectionName"" type=""xs:string"" />
  <xs:complexType name=""CatalogType"">
    <xs:attribute name=""Href"" type=""xs:anyURI"" use=""optional"" />
  </xs:complexType>
  <xs:complexType name=""NewsEnvelopeType"">
    <xs:sequence>
      <xs:element name=""DateAndTime"" type=""xs:anyType"" />
    </xs:sequence>
  </xs:complexType>
  <xs:element default=""1"" name=""RevisionId"">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base=""xs:string"">
          <xs:attribute default=""0"" name=""PreviousRevision"" type=""xs:nonNegativeInteger"" use=""optional"" />
          <xs:attribute default=""N"" name=""Update"" type=""xs:string"" use=""optional"" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name=""PublicIdentifier"" type=""xs:string"" />
</xs:schema>";
        
        public NewsML() {
        }
        
        public override string XmlContent {
            get {
                return _strSchema;
            }
        }
        
        public override string[] RootNodes {
            get {
                string[] _RootElements = new string [1];
                _RootElements[0] = "NewsML";
                return _RootElements;
            }
        }
        
        protected override object RawSchema {
            get {
                return _rawSchema;
            }
            set {
                _rawSchema = value;
            }
        }
    }
}
